package tank02;


import java.awt.*;
import java.util.Random;
import java.util.concurrent.TimeUnit;

/**
 * 敌人类
 */
public class Enemy extends Tank implements Runnable {
    public Enemy(int x, int y, Color color) {
        super(x, y, color);
    }

    //线程执行方法
    @Override
    public void run() {
        while (true) {
            //不断移动
            move();
            try {
                Thread.sleep(100);
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
        }
    }

    /**
     * 随机移动
     */
    public void randomMove() {
        //随机对象
        Random random = new Random();
        //使用调度线程池，每隔5秒，执行切换方法的功能 lambda 表达式 () -> {}
        Tank.threadPool.scheduleAtFixedRate(() -> {
            //产生随机方向 0123
            setDirection(random.nextInt(4));
        }, 0, 5, TimeUnit.SECONDS);
    }

    /**
     * 随机发射
     */
    public void randomFire() {
        //使用调度线程池，每隔5秒，执行发射方法的功能 lambda 表达式 () -> {}
        Tank.threadPool.scheduleAtFixedRate(() -> {
            fire();
        }, 0, 5, TimeUnit.SECONDS);
    }
}